home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 401-425 / disk_421 / ezasm / scroll.asm < prev    next >
Assembly Source File  |  1992-05-06  |  2KB  |  146 lines

  1.  
  2. *    scroll example
  3. *    hit left mouse button to quit
  4.  
  5.  
  6. INTREQR        equ    $01e
  7. INTREQ        equ    $09c
  8. INTENAR        equ    $01c
  9. INTENA        equ    $09a
  10.  
  11. DMACONR        equ    $002
  12. DMACON        equ    $096
  13.  
  14. BPLCON0        equ    $100
  15. BPLCON1        equ    $102
  16. BPLCON2        equ    $104
  17. BPL1MOD        equ    $108
  18. BPL2MOD        equ    $10a
  19.  
  20. DDFSTRT        equ    $092
  21. DDFSTOP        equ    $094
  22. DIWSTRT        equ    $08e
  23. DIWSTOP        equ    $090
  24.  
  25. BPL1PTH        equ    $0e0
  26. BPL2PTH        equ    $0e4
  27.  
  28.  
  29.  
  30. CLEAR_CHIP    equ    $10002
  31.  
  32.  
  33. *        CSEG (Manx)
  34.         SECTION    CODE
  35.  
  36.  
  37. DispMem        equ    -4
  38. Count        equ    -8
  39. IntSave        equ    -12
  40. DmaSave        equ    -14
  41. Color        equ    -16
  42.  
  43.  
  44.         XREF    _LVOAllocMem
  45.         XREF    _LVOFreeMem
  46.  
  47.         link    a5,#-18
  48.  
  49.         movea.l    $4,a6
  50.         move.l    #16000,d0
  51.         move.l    #CLEAR_CHIP,d1
  52.         jsr    _LVOAllocMem(a6)
  53.         move.l    d0,DispMem(a5)
  54.         beq    Quit
  55.  
  56.         lea    14675968,a3
  57.         move.w    INTENAR(a3),IntSave(a5)    ;save DMA and interrupt states
  58.         move.w    DMACONR(a3),DmaSave(a5)
  59.  
  60.  
  61. *    set up display regs
  62.  
  63.         move.w    #$1200,BPLCON0(a3)    ; (LORES) 1BPL COLOR            
  64.  
  65.         clr.w    BPLCON1(a3)
  66.         clr.w    BPLCON2(a3)
  67.         clr.w    BPL1MOD(a3)
  68.         clr.w    BPL2MOD(a3)
  69.  
  70.         move.w    #$2c81,DIWSTRT(a3)
  71.         move.w    #$f4c1,DIWSTOP(a3)
  72.         move.w    #$0038,DDFSTRT(a3)
  73.         move.w    #$00d0,DDFSTOP(a3)
  74.  
  75.         move.w    #$7fff,INTENA(a3)
  76.         move.w    #$7fff,DMACON(a3)
  77.         move.w    #$8020,INTENA(a3)    ;SET VERTB
  78.         move.w    #$8300,DMACON(a3)    ;SET DMAEN BPLEN
  79.  
  80. *    Make bands for effect
  81.  
  82.         moveq    #7,d1
  83.         move.l    #$ffffffff,d2
  84.         movea.l    DispMem(a5),a1
  85. 1$        move.l    #249,d0
  86. 2$        move.l    d2,(a1)+
  87.         dbf    d0,2$
  88.         lea    1000(a1),a1    ;start of next band
  89.         dbf    d1,1$
  90.  
  91.         move.l    DispMem(a5),d2
  92.         move.l    d2,d3
  93.         addi.l    #7960,d3
  94.  
  95. VBloop        move.w    INTREQR(a3),d1
  96.         btst.l    #5,d1
  97.         beq    .laaa
  98.  
  99.         move.w    #$0020,INTREQ(a3)
  100.  
  101.         cmp.l    d3,d2
  102.         bls    .laab
  103.         move.l    DispMem(a5),d2
  104.         jmp    .laac
  105. .laab
  106.         moveq    #50,d7
  107.         add.l    d7,d2
  108. .laac
  109.  
  110.         move.l    d2,BPL1PTH(a3)
  111. .laaa
  112.  
  113.         btst.b    #6,$bfe001
  114.         bne    VBloop
  115.  
  116.  
  117. Quit
  118.         tst.l    DispMem(a5)
  119.         beq    .laad
  120.         movea.l    $4,a6
  121.         movea.l    DispMem(a5),a1
  122.         move.l    #16000,d0
  123.         jsr    _LVOFreeMem(a6)
  124. .laad
  125.  
  126. *    restore DMACON & INTENA
  127.  
  128.         lea    14675968,a3
  129.         move.w    #$7fff,INTENA(a3)
  130.         move.w    #$7fff,DMACON(a3)
  131.  
  132.         move.w    IntSave(a5),d0
  133.         bset.l    #15,d0
  134.         move.w    d0,INTENA(a3)
  135.  
  136.         move.w    DmaSave(a5),d0
  137.         bset.l    #15,d0
  138.         move.w    d0,DMACON(a3)
  139.  
  140.  
  141.         unlk    a5
  142.         moveq    #0,d0
  143.         rts
  144.  
  145.         END
  146.